﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MailServer.Server
{
    public class Server
    {
        public String ServerId;
        public String ServerName;
        public List<Client.Message> Bandejas; 

        public Server()
        {
            Bandejas = new List<Client.Message>();
        }
        public Server(String ServerId, String ServerName)
        {
            this.ServerId = ServerId;
            this.ServerName = ServerName;
            Bandejas = new List<Client.Message>();
        }
        //Metodo que retorna el numero de mensajes para el usuario que lo solicita
        public int GetMessageWaiting(string usuario)
        {
            return Bandejas.Where(m => m.To == usuario && m.Status == 1).Count();
        }
        //Devuelve un Mensaje para el usuario que lo solicita
        public Client.Message GetNextMessage(string usuario)
        {
            var x = Bandejas.Where(m => m.To == usuario && m.Status == 1).FirstOrDefault();
            if (x != null)
                x.Status = 0;
            return x;
        }
        //Metodo que toma el mensaje que se pasa por parametro y dirige el mismo al usuario que se encuentra especificado en el mensaje
        public void Post(Client.Message message)
        {
            Bandejas.Add(message);
        }
    }
}
